#include<SPIFSS/my_spifss.h>

void SPIFSS_Init(){
    if (SPIFFS.begin())
    {
      Serial.println("Start SPIFFS successfully");
    }
    else
    {
      Serial.println("Start SPIFFS Failed");
      if (SPIFFS.format())
      {
        // 格式化成功
        Serial.println("SPIFFS partition formatted successfully");
        // 重启
        ESP.restart();
      }
      else
      {
        Serial.println("SPIFFS partition format failed");
      }
    }
}

//本函数千万不要读取大文件，不然会内存溢出的，大文件要用文件流的形式！
String readFile(String filename)
{
  File myFile; // 定义变量
  String content = "";

  myFile = SPIFFS.open(filename, "r"); // 以只读方式打开文件
  if (myFile) //判断文件是否打开成功
  {
    Serial.println("Reading File [" + filename + "]");
    content = myFile.readString(); // 读取文件中的所有内容
    myFile.close(); //关闭文件
  }
  else
  {
    Serial.println("Open File Failed.");
  }
  return content; //返回文件内容
}

//本函数千万不要写入大文件，要用文件流的形式！
bool writeFile(String filename,String content)
{
  File myFile; // 定义变量
  bool status=false;

  myFile = SPIFFS.open(filename, "w"); // 以只读方式打开文件

  if (myFile) //判断文件是否打开成功
  {
    Serial.println("Writing File [" + filename + "]");
    myFile.seek(0);
    if(status=myFile.write((uint8_t*)content.c_str(),content.length())==false)
    {
      Serial.println("write File Failed.");
    }
    myFile.close(); //关闭文件
  }
  else
  {
    Serial.println("Open File Failed.");
  }

  return status;
}
